Describe I2C work status.
RESP_REC | The received ACK value in master mode or slave mode. 0: ACK, 1: NACK. |
SLAVE_RW | When in slave mode, 1: master reads from slave, 0: master writes to slave. |
ARB_LOST | When the I2C controller loses control of SCL line, this register changes to 1. |
BUS_BUSY | 1: the I2C bus is busy transferring data, 0: the I2C bus is in idle state. |
SLAVE_ADDRESSED | When configured as an I2C Slave, and the address sent by the master is equal to the address of the slave, then this bit will be of high level. |
RXFIFO_CNT | This field represents the amount of data needed to be sent. |
STRETCH_CAUSE | The cause of stretching SCL low in slave mode. 0: stretching SCL low at the beginning of I2C read data state. 1: stretching SCL low when I2C Tx FIFO is empty in slave mode. 2: stretching SCL low when I2C Rx FIFO is full in slave mode. |
TXFIFO_CNT | This field stores the amount of received data in RAM. |
SCL_MAIN_STATE_LAST | This field indicates the states of the I2C module state machine. 0: Idle, 1: Address shift, 2: ACK address, 3: Rx data, 4: Tx data, 5: Send ACK, 6: Wait ACK |
SCL_STATE_LAST | This field indicates the states of the state machine used to produce SCL. 0: Idle, 1: Start, 2: Negative edge, 3: Low, 4: Positive edge, 5: High, 6: Stop |